home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_03_05
/
3n05041a
< prev
next >
Wrap
Text File
|
1992-02-17
|
4KB
|
158 lines
' DLL parameter test program
' Copyright (c) 1992, by Desaware
' All rights reserved
'
'
' This program is used to test the dllparam.dll dynamic
' link library.
' Passing singles by value and returning singles
Sub TestSingleByval_Click ()
f! = ReceivesSingle(1.59)
End Sub
' Passing longs by value and returning longs
Sub TestLongByval_Click ()
y& = ReceivesLong(6)
End Sub
' Passing doubles by value and returning doubles
Sub TestDoubleByval_Click ()
d# = ReceivesDouble(3.145)
End Sub
' Passing integers by reference
Sub TestIntByref_Click ()
x% = 5
Add5ToInteger x%
MsgBox Str$(x%), 0, "Add5ToInteger"
End Sub
' Passing longs by reference
Sub TestLongByref_Click ()
y& = 6
Add5ToLong y&
MsgBox Str$(y&), 0, "Add5ToLong"
End Sub
' Passing singles by reference
Sub TestSingleByref_Click ()
f! = 1.59
Add5ToSingle f!
MsgBox Str$(f!), 0, "Add5ToSingle"
End Sub
' Passing doubles by reference
Sub TestDoubleByref_Click ()
d# = 3.145
Add5ToDouble d#
MsgBox Str$(d#), 0, "Add5ToDouble"
End Sub
' Passing strings (null terminated)
' Always by reference
Sub TestString_Click ()
ReceivesString "Hello"
End Sub
' Passing and modifying strings (null terminated)
' Always by reference
Sub TestStringChange_Click ()
' Null terminated string is passed to the routine
' x$ must be preinitialized to the maximum length.
' The DLL may change the contents of the string, but
' must never go past the null terminator
x$ = "Hello"
ChangesString x$
MsgBox x$, 0, "ChangesString"
End Sub
' Passing controls and forms as parameters
Sub TestControl_Click ()
hctl% = GetControlHwnd(TestControl)
hfrm% = GetFormHwnd(dllparam)
MsgBox "This control hwnd is " + Str$(hctl%) + ", the form hwnd is " + Str$(hfrm%), 0, "Get Hwnds"
End Sub
' Passing Visual Basic strings
Sub TestVBString_Click ()
ReceivesVBString "String to DLL"
End Sub
' Passing and modifying Visual Basic strings
' Note - no length restrictions apply
Sub TestVBStringChange_Click ()
a$ = "Short"
ChangesVBString a$
MsgBox a$, 0, "ChangesVBString"
End Sub
' A DLL function returning a Visual Basic String
Sub ReturnVBString_Click ()
a$ = ReturnsVBString()
MsgBox a$, 0, "ReturnsVBString"
End Sub
' Passing user defined types
' Always by reference
Sub TestUserType_Click ()
Dim u As usertype
u.a = 1
u.b = 2
u.c = 3
u.d = 4
' Note - this is call by reference, the DLL can change
' the value of u
ReceivesUserType u
End Sub
' Passing currency by value and returning currency
Sub TestCurrencyByval_Click ()
Dim c@
c = 1.2345
c = ReceivesCurrency(c)
End Sub
' Passing currency by reference
Sub TestCurrencyByref_Click ()
Dim c@
c@ = 1.23
AddPennyToCurrency c@
MsgBox Str$(c@), 0, "AddPennyToCurrency"
End Sub
' Passing integers by value and returning integers
Sub TestIntByval_Click ()
x% = ReceivesInteger(5)
End Sub
' This is a test of passing a pointer to a numeric array
' Note the unique DLL call
'
Sub ReceivesIntArray_Click ()
ReDim x(4) As Integer
x(0) = 1
x(1) = 3
x(2) = 9
x(3) = 81
' Pass a pointer to the first element of the array.
' The DLL has no way of knowing how long the array is
' unless you define a length parameter for the function.
ReceivesIntArray x(0)
End Sub
' Show how to access strings inside user defined types
Sub TestAddUserString_Click ()
Dim u As usertype
' Note - this is call by reference, the DLL can change
' the value of u
u.s = "orignal string"
AddUserString u
MsgBox u.s, 0, "String in usertype changed"
End Sub